HINT:使用「a,b = b,a+b」定義費氏數列的關係,第k+2項等於第k項加上第k+1項,使用for迴圈產生費氏數列。
#output
請輸入求第幾項費氏數列? 5
1 1
2 1
3 2
4 3
5 5
#input
num = int(input('請輸入求第幾項費氏數列? '))
a = 1
b = 1
print(1,a)
for i in range(2,num+1):
a,b = b,a+b
print(i,a)
HINT:使用字典生成式製作字典,使用函式count計算字的次數,函式set製作字的集合避免重複計算相同的字。
#output
{'十': 3, '不': 4, '一': 3}
{'十': 3, '一': 3}
#input
s='妾 髮 初 覆 額,折 花 門 前 劇 。\
郎 騎 竹 馬 來,繞 床 弄 青 梅 。\
同 居 長 干 里,兩 小 無 嫌 猜 。\
十 四 為 君 婦,羞 顏 未 嘗 開 。\
低 頭 向 暗 壁,千 喚 不 一 回 。\
十 五 始 展 眉,願 同 塵 與 灰 。\
常 存 抱 柱 信,豈 上 望 夫 臺 。\
十 六 君 遠 行,瞿 唐 灩 澦 堆 。\
五 月 不 可 觸,猿 聲 天 上 哀 。\
門 前 遲 形 跡,一 一 生 綠 苔 。\
苔 深 不 能 掃,落 葉 秋 風 早 。\
八 月 蝴 蝶 來,雙 飛 西 園 草 。\
感 此 傷 妾 心,坐 愁 紅 顏 老 。\
早 晚 下 三 巴,預 將 書 報 家 。\
相 迎 不 道 遠,直 至 長 風 沙 。'
d = {w:s.count(w) for w in set(s) if w!='\t' and w!='\u3000' and w!= ' 'and w!=','and w!='。' and s.count(w)>2}
print(d)
d = {k:v for k,v in d.items() if v==3}
print(d)
以上這兩個習題提供大家練習,
不懂得可以往前複習迴圈與生成式的文章喔!